<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="domain.*,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="style/main.css">
<title>Herramienta de Selección de Equipamiento - Junta de Andalucía</title>
</head>
<body>

<%@ include file="cabecera.html" %>

<%@ include file="menu.jsp" %>
<div id="content">
<%
String proveedorForm = request.getParameter("Proveedor");
String articuloForm = request.getParameter("Articulo");
String add = request.getParameter("add");
if ( (proveedorForm == null) && (articuloForm == null) && (add == null)){
%>
<form action="FrontController?res=addProduct.jsp" method="post">
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr>
	<td>Proveedor</td>
	<td><select name="Proveedor">
<%
	Collection<Product> c = Store.getInstance().getProducts();
	Collection<Supplier> prov = new LinkedList();
	for(Product p:c){
		if (!prov.contains(p.getSupplier())){
			prov.add(p.getSupplier());
		}
	}
	for(Supplier s:prov){
%>
		<option><%=s.getName()%></option>
<%
	}
%>
	</select>
	</td>
</tr>
<tr>
	<td>Artículo</td>
	<td><select name="Articulo">
<%
	Collection<Article> arts = Store.getInstance().getArticles();
	for(Article a:arts){
%>
		<option><%=a.getType()%></option>
<%	
	}
%>
	</select>
	</td>
</tr>
</table>
<input name="Submit" value="Seleccionar" class="submit" type="submit">
</form>
<%
} else if (add==null && articuloForm.compareTo("Ordenador")==0){
%>
	<form action="FrontController?res=addProduct.jsp&add=<%=articuloForm%>&prov=<%=proveedorForm%>" method="post">
	<table>
	<caption>Campos obligatorios para dar de alta un Ordenador</caption>
	<tr>
		<td>Marca</td>
		<td><input type="text" name="marca"></td>
	</tr>
	<tr>
		<td>Modelo</td>
		<td><input type="text" name="modelo"></td>
	</tr>
	<tr>
		<td>Precio</td>
		<td><input type="text" name="precio"></td>
	</tr>
	<tr>
		<td>Procesador</td>
		<td><input type="text" name="procesador"></td>
	</tr>
	<tr>
		<td>Memoria (en MB)</td>
		<td><input type="text" name="memoria"></td>
	</tr>
	<tr>
		<td>Disco duro (en GB)</td>
		<td><input type="text" name="disco"></td>
	</tr>
	<tr>
		<td>Monitor (en pulgadas)</td>
		<td><input type="text" name="monitor"></td>
	</tr>
	<tr>
		<td>Sistema operativo</td>
		<td><input type="radio" name="guadalinex" value="True">Compatible con Guadalinex<br /><input type="radio" name="guadalinex" value="False">No Compatible</td>
	</tr>
	</table>
	<input name="Submit2" value="Dar de alta ordenador" class="submit" type="submit">
	</form>
<%	
} else if (add==null && articuloForm.compareTo("Portatil")==0){
%>
	<form action="FrontController?res=addProduct.jsp&add=<%=articuloForm%>&prov=<%=proveedorForm%>" method="post">
	<table>
	<tr>
		<td>Marca</td>
		<td><input type="text" name="marca"></td>
	</tr>
	<tr>
		<td>Modelo</td>
		<td><input type="text" name="modelo"></td>
	</tr>
	<tr>
		<td>Precio</td>
		<td><input type="text" name="precio"></td>
	</tr>
	<tr>
		<td>Procesador</td>
		<td><input type="text" name="procesador"></td>
	</tr>
	<tr>
		<td>Memoria (en MB)</td>
		<td><input type="text" name="memoria"></td>
	</tr>
	<tr>
		<td>Disco duro (en GB)</td>
		<td><input type="text" name="disco"></td>
	</tr>
	<tr>
		<td>Monitor (en pulgadas)</td>
		<td><input type="text" name="monitor"></td>
	</tr>
	<tr>
		<td>Sistema operativo</td>
		<td><input type="radio" name="guadalinex" value="True">Compatible con Guadalinex<br /><input type="radio" name="guadalinex" value="False">No Compatible</td>
	</tr>
	<tr>
		<td>Autonomía (en minutos)</td>
		<td><input type="text" name="autonomia"></td>
	</tr>
	<tr>
		<td>Peso (en Kg)</td>
		<td><input type="text" name="peso"></td>
	</tr>
	</table>
	<input name="Submit" value="Dar de alta Portatil" class="submit" type="submit">
	</form>
<%	
} else if (add==null && articuloForm.compareTo("Servidor")==0){
%>
	<form action="FrontController?res=addProduct.jsp&add=<%=articuloForm%>&prov=<%=proveedorForm%>" method="post">
	<table>
	<tr>
		<td>Marca</td>
		<td><input type="text" name="marca"></td>
	</tr>
	<tr>
		<td>Modelo</td>
		<td><input type="text" name="modelo"></td>
	</tr>
	<tr>
		<td>Precio</td>
		<td><input type="text" name="precio"></td>
	</tr>
	<tr>
		<td>Procesador</td>
		<td><input type="text" name="procesador"></td>
	</tr>
	<tr>
		<td>Memoria (en MB)</td>
		<td><input type="text" name="memoria"></td>
	</tr>
	<tr>
		<td>Discos duro (en unidades)</td>
		<td><input type="text" name="discos"></td>
	</tr>
	<tr>
		<td>Sistema operativo</td>
		<td><input type="radio" name="debian" value="True">Compatible con Debian<br /><input type="radio" name="debian" value="False">No Compatible</td>
	</tr>
	</table>
	<input name="Submit" value="Dar de alta Servidor" class="submit" type="submit">
	</form>
<%	
} else if (add==null && articuloForm.compareTo("Impresora Local")==0){
%>
	<form action="FrontController?res=addProduct.jsp&add=<%=articuloForm%>&prov=<%=proveedorForm%>" method="post">
	<table>
	<tr>
		<td>Marca</td>
		<td><input type="text" name="marca"></td>
	</tr>
	<tr>
		<td>Modelo</td>
		<td><input type="text" name="modelo"></td>
	</tr>
	<tr>
		<td>Precio</td>
		<td><input type="text" name="precio"></td>
	</tr>
	<tr>
		<td>Páginas por minuto</td>
		<td><input type="text" name="ppm"></td>
	</tr>
	<tr>
		<td>Impresión doble cara</td>
		<td><input type="radio" name="duplex" value="True">Si<br /><input type="radio" name="duplex" value="False">No</td>
	</tr>
	<tr>
		<td>Tarjeta de red</td>
		<td><input type="radio" name="nic" value="True">Ethernet<br /><input type="radio" name="nic" value="False">No Ethernet</td>
	</tr>
	<tr>
		<td>Cable USB</td>
		<td><input type="radio" name="usb" value="True">Incluido<br /><input type="radio" name="usb" value="False">No Incluido</td>
	</tr>
	<tr>
		<td>Sistema operativo</td>
		<td><input type="radio" name="guadalinex" value="True">Compatible con Guadalinex<br /><input type="radio" name="guadalinex" value="False">No Compatible</td>
	</tr>
	</table>
	<input name="Submit" value="Dar de alta Impresora Local" class="submit" type="submit">
	</form>
<%	
} else if (add==null && articuloForm.compareTo("Impresora Red")==0){
%>
	<form action="FrontController?res=addProduct.jsp&add=<%=articuloForm%>&prov=<%=proveedorForm%>" method="post">
	<table>
	<tr>
		<td>Marca</td>
		<td><input type="text" name="marca"></td>
	</tr>
	<tr>
		<td>Modelo</td>
		<td><input type="text" name="modelo"></td>
	</tr>
	<tr>
		<td>Precio</td>
		<td><input type="text" name="precio"></td>
	</tr>
	<tr>
		<td>Páginas por minuto</td>
		<td><input type="text" name="ppm"></td>
	</tr>
	<tr>
		<td>Impresión doble cara</td>
		<td><input type="radio" name="duplex" value="True">Si<br /><input type="radio" name="duplex" value="False">No</td>
	</tr>
	<tr>
		<td>Tarjeta de red</td>
		<td><input type="radio" name="nic" value="True">Ethernet<br /><input type="radio" name="nic" value="False">No Ethernet</td>
	</tr>
	<tr>
		<td>Capacidad gestión</td>
		<td><input type="radio" name="snmp" value="True">SNMP<br /><input type="radio" name="snmp" value="False">No</td>
	</tr>
	<tr>
		<td>Sistema operativo</td>
		<td><input type="radio" name="debian" value="True">Compatible con Debian<br /><input type="radio" name="debian" value="False">No Compatible</td>
	</tr>
	</table>
	<input name="Submit" value="Dar de alta Impresora Red" class="submit" type="submit">
	</form>
<%	
} else if (add != null) {
	
	String brand = request.getParameter("marca");
	String model = request.getParameter("modelo");
	double price = Double.parseDouble(request.getParameter("precio"));
	
	Collection<Article> articles = Store.getInstance().getArticles();
	Map<String,Article> map = new HashMap<String,Article>();
	for(Article a:articles){
	 	map.put(a.getType(),a);
	}
	Article article = (Article) map.get(add);
	Collection<Product> products = Store.getInstance().getProducts();
	Collection<Supplier> suppliers = new LinkedList();
	for(Product p:products){
		suppliers.add(p.getSupplier());
	}
	Map<String,Supplier> map1 = new HashMap<String,Supplier>();
	for(Supplier s:suppliers){
	 	map1.put(s.getName(),s);
	}
	String prov = request.getParameter("prov");
	Supplier supplier = (Supplier) map1.get(prov);
	System.out.println("Proveedor seleccionado: " + supplier.getBidderCode() + " " + supplier.getName());
	
	if (add.compareTo("Ordenador")==0) {
		String processor = request.getParameter("procesador");
		int memory = Integer.valueOf(request.getParameter("memoria"));
		int disc = Integer.valueOf(request.getParameter("disco"));
		double display = Double.parseDouble(request.getParameter("monitor"));
		boolean guadalinexComp = Boolean.valueOf(request.getParameter("guadalinex"));
		
		Product p = new Computer(brand,model,price,article,supplier,processor,memory,disc,display,guadalinexComp);
		Store.getInstance().addProduct(p);
	%>
		
		<p>Añadido un nuevo <%=add%> al sistema con las siguientes características: </p>
		<ul>
			<li>Articulo: <%=article.getType()%></li>
			<li>Proveedor: <%=supplier.getName() %></li>
			<li>Procesador: <%=processor%></li>
			<li>Memoria: <%=memory%> MB.</li>
			<li>Disco Duro: <%=disc%> GB.</li>
			<li>Monitor: <%=display%> pulgadas.</li>
			<li>Sistema Operativo compatible con Guadalinex : <%=guadalinexComp%></li>
		</ul>
	<%
	}else if (add.compareTo("Portatil")==0) {
		String processor = request.getParameter("procesador");
		int memory = Integer.valueOf(request.getParameter("memoria"));
		int disc = Integer.valueOf(request.getParameter("disco"));
		double display = Double.parseDouble(request.getParameter("monitor"));
		boolean guadalinexComp = Boolean.valueOf(request.getParameter("guadalinex"));
		int autonomy = Integer.valueOf(request.getParameter("autonomia"));
		double weight = Double.parseDouble(request.getParameter("peso"));
		
		Product p = new Laptop(brand,model,price,article,supplier,processor,memory,disc,display,guadalinexComp,autonomy,weight);
		Store.getInstance().addProduct(p);
		
	%>
		<p>Añadido un nuevo <%=add%> al sistema con las siguientes características: </p>
		<ul>
			<li>Articulo: <%=article.getType()%></li>
			<li>Proveedor: <%=supplier.getName() %></li>
			<li>Procesador: <%=processor%></li>
			<li>Memoria: <%=memory%> MB.</li>
			<li>Disco Duro: <%=disc%> GB.</li>
			<li>Monitor: <%=display%> pulgadas.</li>
			<li>Sistema Operativo compatible con Guadalinex : <%=guadalinexComp%></li>
			<li>Autonomía: <%=autonomy%> minutos.</li>
			<li>Peso: <%=weight%> kilos.</li>
		</ul>
	<%}else if (add.compareTo("Servidor")==0) {
		String processor = request.getParameter("procesador");
		int memory = Integer.valueOf(request.getParameter("memoria"));
		int discs = Integer.valueOf(request.getParameter("discos"));
		boolean debianComp = Boolean.valueOf(request.getParameter("debian"));
		
		Product p = new Server(brand,model,price,article,supplier,processor,memory,discs,debianComp);
		Store.getInstance().addProduct(p);
	%>
		<p>Añadido un nuevo <%=add%> al sistema con las siguientes características: </p>
		<ul>
			<li>Articulo: <%=article.getType()%></li>
			<li>Proveedor: <%=supplier.getName() %></li>
			<li>Procesador: <%=processor%></li>
			<li>Memoria: <%=memory%> MB.</li>
			<li>Número de discos: <%=discs%></li>
			<li>Sistema Operativo compatible con Debian : <%=debianComp%></li>
		</ul>
	<%}else if (add.compareTo("Impresora Local")==0) {
		int ppm = Integer.valueOf(request.getParameter("ppm"));
		boolean duplex = Boolean.valueOf(request.getParameter("duplex"));
		boolean nic = Boolean.valueOf(request.getParameter("nic"));
		boolean usbCableInc = Boolean.valueOf(request.getParameter("usb"));
		boolean guadalinexComp = Boolean.valueOf(request.getParameter("guadalinex"));
		
		Product p = new LocalPrinter(brand,model,price,article,supplier,ppm,duplex,nic,usbCableInc,guadalinexComp);
		Store.getInstance().addProduct(p);
	%>
		<p>Añadido un nuevo <%=add%> al sistema con las siguientes características: </p>
		<ul>
			<li>Articulo: <%=article.getType()%></li>
			<li>Proveedor: <%=supplier.getName() %></li>
			<li>Páginas por minuto: <%=ppm%></li>
			<li>Doble cara: <%=duplex%></li>
			<li>Tarjeta de Red: <%=nic%></li>
			<li>Cable USB: <%=usbCableInc%></li>
			<li>Sistema Operativo compatible con Guadalinex : <%=guadalinexComp%></li>
		</ul>
	<%}else if (add.compareTo("Impresora Red")==0) {
		int ppm = Integer.valueOf(request.getParameter("ppm"));
		boolean duplex = Boolean.valueOf(request.getParameter("duplex"));
		boolean nic = Boolean.valueOf(request.getParameter("nic"));
		boolean snmpCapable = Boolean.valueOf(request.getParameter("snmp"));
		boolean debianComp = Boolean.valueOf(request.getParameter("debian"));
		
		Product p = new NetworkPrinter(brand,model,price,article,supplier,ppm,duplex,nic,snmpCapable,debianComp);
		Store.getInstance().addProduct(p);		
	%>
		<p>Añadido un nuevo <%=add%> al sistema con las siguientes características: </p>
		<ul>
			<li>Articulo: <%=article.getType()%></li>
			<li>Proveedor: <%=supplier.getName() %></li>
			<li>Páginas por minuto: <%=ppm%></li>
			<li>Doble cara: <%=duplex%></li>
			<li>Tarjeta de Red: <%=nic%></li>
			<li>Capacidad de Gestión: <%=snmpCapable%></li>
			<li>Sistema Operativo compatible con Debian : <%=debianComp%></li>
		</ul>
	<%}
}
%>	

</div>

</body>
</html>